Prefijos de desarrollo: get, find, fetch, load, retrieve - Comprender las diferencias y las reglas de uso
- Al usar lenguajes de programación, los prefijos como
get,find,fetch,loadyretrievese utilizan a menudo en nombres de métodos o funciones. Se usan comúnmente al recuperar datos de bases de datos, archivos externos o API. - Durante el desarrollo, quise escribir código con consistencia, por lo que me pregunté sobre las diferencias y los casos de uso de estos prefijos. Investigué las diferencias y los casos de uso de estos prefijos.
- Las convenciones de nomenclatura pueden variar según la empresa o el desarrollador. En este caso, intenté encontrar reglas comúnmente utilizadas, pero en la práctica, pueden diferir según el caso de uso.
- Aunque estos prefijos pueden parecer similares, cada uno tiene significados y contextos de uso ligeramente diferentes. Exploremos sus diferencias.
- No he tenido la oportunidad de trabajar con convenciones de desarrollo establecidas en grandes empresas, por lo que mi conocimiento sobre este tema es algo limitado. El contenido puede no ser completamente preciso, así que por favor léalo solo como referencia.
1. get
El prefijo get se usa comúnmente para recuperar o acceder a valores específicos. Esto implica que la operación devuelve un resultado único o un elemento específico de una colección. Por ejemplo:
getUser()- Recupera un objeto de usuario único.getProductById(id)- Recupera un objeto de producto correspondiente al ID proporcionado.getUsers()- Recupera todos los objetos de usuario.
2. find
El prefijo find se usa generalmente para buscar y encontrar elementos que coinciden con ciertas condiciones. La diferencia con get es que find parece centrarse más en la búsqueda y el descubrimiento. Esto implica que la operación devuelve múltiples resultados o una colección de elementos. Por ejemplo:
findUsersByRole(role)- Encuentra todos los usuarios con un rol específico.findProductsByCategory(category)- Encuentra todos los productos que pertenecen a una categoría específica.findUsersByAge(age)- Encuentra todos los usuarios de una edad específica.
2.1. find vs get
- Aunque no está definido oficialmente, según las discusiones de varias personas en Internet, las diferencias entre
findygetson las siguientes:- get: Se centra en recuperar algo que está definitivamente determinado. Devuelve un resultado único o un elemento, y generalmente no se usa cuando podría no haber ningún resultado.
- find: Se centra en buscar y encontrar. Devuelve múltiples resultados o una colección de elementos, y los resultados de búsqueda pueden estar vacíos.
- El ejemplo del artículo del blog How do you use "find" vs "get" prefix? puede ayudar a comprender este concepto. A continuación se muestra un ejemplo de ese artículo:
getOneById: Lanza un error si no hay ningún resultado para ese ID.findOneById: Devuelve null si no hay ningún resultado para ese ID.
public async getOneById(id: number): Promise<User> {
const user = await this.userRepository
.createQueryBuilder("u")
.where("u.id = :id", {id})
.getOne();
if (!user)
throw new Error(`User with ID "${id.toString()}" not found.`);
return user;
}
public async findOneById(id: number): Promise<User> {
const user = await this.userRepository
.createQueryBuilder("u")
.where("u.id = :id", {id})
.getOne();
return user;
}
3. fetch vs load vs retrieve
- Los prefijos
fetch,loadyretrieveson otros prefijos utilizados para recuperar datos. Se utilizan principalmente para obtener datos de redes o bases de datos. Aunque sus diferencias no son claras, generalmente se usan de la siguiente manera:fetch: Se usa para recuperar datos de redes. Principalmente asociado con llamadas a API.load: Comúnmente usado para recuperar datos externos como bases de datos o datos de archivos desde S3.retrieve: Se usa para recuperar datos. Parece usarse con menos frecuencia quefetchyload.
4. Resumen
getse usa para recuperar un resultado único o un elemento, mientras quefindse usa para buscar múltiples resultados o elementos.fetch,loadyretrievese usan para recuperar datos.fetchse usa para recuperar datos de redes,loadse usa para recuperar datos de bases de datos o archivos, yretrievese usa para recuperar datos.- Sin embargo, la frecuencia de uso de
fetch,loadyretrievees menor que la degetyfind, y las distinciones son relativamente menos claras.
- Sin embargo, la frecuencia de uso de
- Estos prefijos son reglas de uso generales, y en la práctica, pueden variar según dónde se usen, el lenguaje de programación o el framework. Para un uso preciso, consulte la documentación específica del proyecto o los estándares de codificación.